package org.jupiter.blog.api.domain;

import java.time.LocalDateTime;

/**
 * 博客统计信息实体类
 * 
 * @author lwl
 * @date 2024-01-15
 */
public class JupiterBlogStat {
    
    /**
     * 博客 ID
     */
    private String blogUuid;
    
    /**
     * 阅读量
     */
    private Long viewCount;
    
    /**
     * 点赞量
     */
    private Long likeCount;
    
    /**
     * 收藏量
     */
    private Long favoriteCount;
    
    /**
     * 最后更新时间
     */
    private LocalDateTime updateTime;
    
    // 构造函数
    public JupiterBlogStat() {}
    
    public JupiterBlogStat(String blogUuid) {
        this.blogUuid = blogUuid;
        this.viewCount = 0L;
        this.likeCount = 0L;
        this.favoriteCount = 0L;
    }
    
    public JupiterBlogStat(String blogUuid, Long viewCount, Long likeCount, Long favoriteCount) {
        this.blogUuid = blogUuid;
        this.viewCount = viewCount;
        this.likeCount = likeCount;
        this.favoriteCount = favoriteCount;
    }
    
    // Getter 和 Setter 方法
    public String getBlogUuid() {
        return blogUuid;
    }
    
    public void setBlogUuid(String blogUuid) {
        this.blogUuid = blogUuid;
    }
    
    public Long getViewCount() {
        return viewCount;
    }
    
    public void setViewCount(Long viewCount) {
        this.viewCount = viewCount;
    }
    
    public Long getLikeCount() {
        return likeCount;
    }
    
    public void setLikeCount(Long likeCount) {
        this.likeCount = likeCount;
    }
    
    public Long getFavoriteCount() {
        return favoriteCount;
    }
    
    public void setFavoriteCount(Long favoriteCount) {
        this.favoriteCount = favoriteCount;
    }
    
    public LocalDateTime getUpdateTime() {
        return updateTime;
    }
    
    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }
    
    @Override
    public String toString() {
        return "JupiterBlogStat{" +
                "blogUuid='" + blogUuid + '\'' +
                ", viewCount=" + viewCount +
                ", likeCount=" + likeCount +
                ", favoriteCount=" + favoriteCount +
                ", updateTime=" + updateTime +
                '}';
    }
}
